package com.hcj.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

@RestController
@RequestMapping("/file")
public class FileController {

    @Autowired
    private Environment env;

    @RequestMapping("/get/{filename}")
    public void getFile(@PathVariable("filename") String filename, HttpServletResponse resp) throws IOException {

        // 读取项目的配置，通过配置的文件存储路径+文件名，来读取文件
        String dir = env.getProperty("user.file.upload-path");
        // 拼接文件目录和文件名
        File file = new File(dir + "/" + filename);
        // 如果文件存在则读取文件
        if (file.exists() && file.isFile()) {
            // 创建文件的输入流
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
            // 读取文件数据
            byte[] bytes = bis.readAllBytes();
            resp.getOutputStream().write(bytes);
            resp.setContentType("image/jpeg");
        } else {
            // 文件不存在，则返回 404 错误界面
            resp.sendError(404);
        }
    }

}
